// 校验提交信息格式的示例脚本
import fs from 'fs'

// Husky 提交信息钩子会将提交信息写入这个文件
const commitMsgFile = process.argv[2]
const commitMsg = fs.readFileSync(commitMsgFile, 'utf-8').trim()

// 自定义校验规则：提交信息必须以 [feat/fix/docs/style/refactor/test/chore] 开头
const reg = /^\[(feat|fix|docs|style|refactor|test|chore|revert)\]/

if (!reg.test(commitMsg)) {
	// 输出中文错误提示
	console.error('\x1B[31m❌ 提交信息格式不正确！\x1B[0m')
	console.error('\x1B[33m请按照以下格式提交：\x1B[0m')
	console.error('\x1B[32m[类型] 描述信息\x1B[0m')
	console.error('\x1B[34m示例：[feat] 添加用户登录功能\x1B[0m')
	console.error('\x1B[34m类型说明：feat(新功能)、fix(修复)、docs(文档)等\x1B[0m')
	process.exit(1) // 校验失败，终止提交
}

// 校验通过
console.log('\x1B[32m✅ 提交信息格式校验通过！\x1B[0m')
process.exit(0)
